Rust から C のライブラリを呼び出す
from 項目34:FFI境界を通過するものを制御しよう
C のツールチェーンがライブラリを生成する方法の詳細とフォーマットは環境依存
e.g. Unix 系では ar コマンドで 静的ライブラリ(e.g. libcffi.a)ファイルを生成して用いる
Rust のビルドシステムでは、C が保持するライブラリを以下のように指定する
code:rs
#link(name = "cffi") // libcffi.a を必要とする
extern "C" { ... }
または、build.rs (ビルドスクリプト)で cargo:rustc-link-lib 命令を出力することでも指定できる
code:build.rs
fn main() {
println!("cargo:rustc-link-lib=cffi");
}
依存関係を cargo に認識させるには、Cargo.tomlで links キーを用いる
code:Cargo.toml
package
links = "cffi"
#Rust #Effective_Rust_―_Rustコードを改善し、エコシステムを最大限に活用するための35項目